var chrome = {};

chrome.runtime = {
    getURL: function (URL) {
    },
    lastError: {'message': ''},
    id: 0,
    getBackgroundPage: function (callback) {
    },
    getManifest: function () {
    },
    reload: function () {
    },
    requestUpdateCheck: function (callback) {
    },
    connect: function (extId, connectInfo) {
    },
    sendMessage: function (extId, message, response) {
    },
    onStartup: {
        addListener: function (callback) {
        }
    },
    onInstalled: {
        addListener: function (details) {
        }
    },
    onSuspend: {
        addListener: function (callback) {
        }
    },
    onSuspendCanceled: {
        addListener: function () {
        }
    },
    onUpdateAvailable: {
        addListener: function (details) {
        }
    },
    onBrowserUpdateAvailable: {
        addListener: function () {
        }
    },
    onConnect: {
        addListener: function (port) {
        }
    },
    onConnectExternal: {
        addListener: function (port) {
        }
    },
    onMessage: {
        addListener: function (message, sender, response) {
        }
    },
    onMessageExternal: {
        addListener: function (message, sender, response) {
        }
    }

};

chrome.browserAction = {
    setTitle: function (details) {
    },
    getTitle: function (details, callback) {
    },
    setIcon: function (details, callback) {
    },
    setPopup: function (details) {
    },
    getPopup: function (details, callback) {
    },
    setBadgeText: function (details) {
    },
    getBadgeText: function (details, callback) {
    },
    setBadgeBackgroundColor: function (details) {
    },
    getBadgeBackgroundColor: function (details, callback) {
    },
    enable: function (tabId) {
    },
    disable: function (tabId) {
    },
    onClicked: {
        addListener: function (tab) {
        },
        removeListener: function (tab) {
        }
    }
};

chrome.tabs = {
    get: function (id, callback) {
    },
    getCurrent: function (callbak) {
    },
    connect: function (tabId, connectInfo) {
    },
    sendMessage: function (tabId, message, callback) {
    },
    create: function (createProperties, callbak) {
    },
    duplicate: function (tabId, callback) {
    },
    query: function (queryInfo, callback) {
    },
    hightlight: function (highlightInfo, callback) {
    },
    update: function (tabId, updateProperties, callback) {
    },
    move: function (tabIds, moveProperties, callback) {
    },
    reload: function (tabId, reloadProperties, callback) {
    },
    remove: function (tabIds, callback) {
    },
    detectLanguage: function (tabId, callback) {
    },
    captureVisibleTab: function (windowId, options, callback) {
    },
    executeScript: function (tabId, injectDetails, callback) {
    },
    insertCSS: function (tabId, injectDetails, callback) {
    },
    onCreated: {
        addListener: function (tab) {
        }
    },
    onUpdated: {
        addListener: function (tabId, changeInfo, tab) {
        }
    },
    onMoved: {
        addListener: function (tabId, moveInfo) {
        }
    },
    onActivated: {
        addListener: function (activeInfo) {
        }
    },
    onHighlighted: {
        addListener: function (highlightInfo) {
        }
    },
    onDetached: {
        addListener: function (tabId, detachInfo) {
        }
    },
    onAttached: {
        addListener: function (tabId, attachInfo) {
        }
    },
    onRemoved: {
        addListener: function (tabId, removeInfo) {
        }
    },
    onReplaced: {
        addListener: function (addId, replaceId) {
        }
    }
};